26c.他のアプリケーションとの連携
Office97ではオ−トメ−ション機能をサポ−トしており、Excel97・Access97
・Word97ではアプリケ−ションを連携して1つのアプリケ−ションのように
使用することが出来る。
26c−1 ExcelオブジェクトをWordへ貼り付け<

Sub ki407()
Set wd = CreateObject("word.Application") '[1]
wd.Visible = True '[2]
wd.documents.Add '[3]
For Each ex In ActiveSheet.Shapes '[4]
ccc = ex.Name '[5]
ActiveSheet.Shapes(ccc).Select '[6]
Selection.Copy '[7]
Range("G1").Select
wd.Selection.Paste '[8]
Next
End Sub
[1] オブジェクト変数"wd"にWordのApplicationオブジェクトをセット
[2] Wordを表示する(上記でWordは起動されるが非表示)
[3] 新規文書の作成
[4] Excelのアクティブシ−トに図形があれば変数"ex"へ入れる
[5] 図形の名前を取得
[6] 名前を取得した図形を選択
[7] 選択した図形をコピ−
[8] Wordへ図形を貼り付ける
26c−2 選択したセルをBMP画像で保存
・Shell関数アプリケ−ションを起動した場合、アプリケ−ションの起動と関係なく
次ぎのステ−トメントへ移る。、ペイントアプリケ−ションのような時間の掛かる
場合は起動確認後次ぎを実行する必要がある。(本例はダミ−のファイルを
保存し保存を確認後次のステップを実行した)
・ワ−クシ−トの一部を画像コピ−してHPの説明用に掲載する場合、
そのつどペイントへ貼り付けファイルを作成しているが面倒なので、
一連の作業をマクロで作ったのが本例です。
・ピクチャ−で保存したいセルをアクティブにして本マクロ実行で指定した個所が、
指定したフォルダ(本例:b:\test2)に保存される。

Const fil1 As String = "A:\Program Files\MSPAINT.EXE"
Const fil2 As String = "c:\test2"
Dim filn As String 'BMPのファイル名
Dim n As Integer 'BMPのファイル名no
Sub 例26c2()
'BMPのファイル名
n = n + 1
filn = "画像" & Str(n)
'画像コピ−
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Application.WindowState = xlMinimized
'Notepadの起動と保存画面表示
ChDir fil2
On Error Resume Next
AppActivate "ペイント"
If Err Then
Shell fil1 + " ", windowstyle:=1
End If
On Error GoTo 0
'過去のファイル削除
If Dir(fil2 & "\" & filn & ".bmp") = filn & ".bmp" Then
Kill fil2 & "\" & filn & ".bmp"
End If
If Dir(fil2 & "\無題.bmp") = "無題.bmp" Then
Kill fil2 & "\無題.bmp"
End If
tim = Now + TimeValue("00:00:08")
Do
'保存
SendKeys "%(FA)", True '名前を付け保存
SendKeys "%(S)", True '保存
If Dir(fil2 & "\無題.bmp") = "無題.bmp" Then
Kill fil2 & "\無題.bmp"
Exit Do
End If
If Now > tim Then
MsgBox "変換に失敗しました。ペイントのパスを確認して下さい"
Exit Sub
End If
Loop
'貼付け
SendKeys "%(EP)", True
'保存
SendKeys "%(EO)", True 'ファイルへコピ−
SendKeys filn, True
SendKeys "%(S)", True 'OK
Application.CutCopyMode = False
'終了
SendKeys "%(FX)", True 'ペイント終了
SendKeys "(N)", True
Application.WindowState = xlNormal
End Sub
・ペイントの、ファイル名は各PCに合わせ書き変えること(本例A:\WINDOWS\PBRUSH.EXE)。
・自動作成したBMPファイルは指定した(本例:"B:\test2")フォルダ−へ
書き込むので、そのフォルダ−を事前に作成すると共にマクロも書き変えること。
・上記指定が合っていない場合はアプリケ−ション”ペイント”の起動待ちで永久ル−プになる為、
8秒で起動確認が出来ない場合はメッセ−ジ後マクロ実行を終了します。
・BMPファイルは本例では"画像"としてあるが、英字の場合はキ−ボ−ドの
大文字or小文字の設定によりファイル名が変わのでうまく動作しないことがあります。
・本ケ−スは選択したセルを対象にしているが、グラフ等のオブジェクトを対象に実行
したい方は、「Selection.CopyPicture....」の一行を「Selection.Copy」に変更すればよい。
・注意:ペイントの貼り付ける場所は大きなサイズにしてから実行して下さい。
目次へ戻る